$(function() {
	$(".win-homepage").click(function() {
		if (document.all) {
			document.body.style.behavior = "url(#default#homepage)";
			document.body.setHomePage(document.URL)
		} else {
			alert("设置首页失败，请手动设置！")
		}
	});
	$(".win-favorite").click(function() {
		var sURL = document.URL;
		var sTitle = document.title;
		try {
			window.external.addFavorite(sURL, sTitle)
		} catch(e) {
			try {
				window.sidebar.addPanel(sTitle, sURL, "")
			} catch(e) {
				alert("加入收藏失败，请使用Ctrl+D进行添加")
			}
		}
	});
	$(".win-forward").click(function() {
		window.history.forward(1)
	});
	$(".win-back").click(function() {
		window.history.back( - 1)
	});
	$(".win-backtop").click(function() {
		$("body,html").animate({
			scrollTop: 0
		},
		1000);
		return false
	});
	$(".win-refresh").click(function() {
		window.location.reload()
	});
	$(".win-print").click(function() {
		window.print()
	});
	$(".win-close").click(function() {
		window.close()
	});
	$(".checkall").click(function() {
		var e = $(this);
		var name = e.attr("name");
		var checkfor = e.attr("checkfor");
		var type;
		if (checkfor != "" && checkfor != null && checkfor != undefined) {
			type = e.closest("form").find("input[name='" + checkfor + "']")
		} else {
			type = e.closest("form").find("input[type='checkbox']")
		}
		if (name == "checkall") {
			$(type).each(function(index, element) {
				element.checked = true
			});
			e.attr("name", "ok")
		} else {
			$(type).each(function(index, element) {
				element.checked = false
			});
			e.attr("name", "checkall")
		}
	});
	$(".dropdown-toggle").click(function() {
		$(this).closest(".button-group, .drop").addClass("open")
	});
	$(".dropdown-hover").hover(function() {
		$(".button-group, .drop").removeClass("open");
		$(this).closest(".button-group, .drop").addClass("open")
	},
	function() {});
	$(document).bind("click",
	function(e) {
		if ($(e.target).closest(".button-group.open, .drop.open").length == 0) {
			$(".button-group, .drop").removeClass("open")
		}
	});
	$checkplaceholder = function() {
		var input = document.createElement("input");
		return "placeholder" in input
	};
	$placeholder = function placeholder(element) {
		if ($(element).val() == "" && ($(element).attr("placeholder") || $emptyplaceholder(element))) {
			$(element).val($(element).attr("placeholder"));
			$(element).data("pintuerholder", $(element).css("color"));
			$(element).css("color", "rgb(169,169,169)");
			$(element).focus(function() {
				$hideplaceholder($(this))
			});
			$(element).blur(function() {
				$showplaceholder($(this))
			})
		}
	};
	if (!$checkplaceholder()) {
		$("textarea[placeholder], input[placeholder]").each(function(index, element) {
			$placeholder(element)
		})
	}
	$emptyplaceholder = function(element) {
		var $content = $(element).val();
		return ($content.length === 0) || $content == $(element).attr("placeholder")
	};
	$showplaceholder = function(element) {
		if (($(element).val().length === 0 || $(element).val() == $(element).attr("placeholder")) && $(element).attr("type") != "password") {
			$(element).val($(element).attr("placeholder"));
			$(element).data("pintuerholder", $(element).css("color"));
			$(element).css("color", "rgb(169,169,169)")
		}
	};
	$hideplaceholder = function(element) {
		if ($(element).data("pintuerholder")) {
			$(element).val("");
			$(element).css("color", $(element).data("pintuerholder"));
			$(element).removeData("pintuerholder")
		}
	};
	$("textarea, input, select").blur(function() {
		var e = $(this);
		if (e.attr("data-validate")) {
			e.closest(".field").find(".input-help").remove();
			var $checkdata = e.attr("data-validate").split(",");
			var $checkvalue = e.val();
			var $checkstate = true;
			var $checktext = "";
			if (e.attr("placeholder") == $checkvalue) {
				$checkvalue = ""
			}
			if ($checkvalue != "" || e.attr("data-validate").indexOf("required") >= 0) {
				for (var i = 0; i < $checkdata.length; i++) {
					var $checktype = $checkdata[i].split(":");
					if (!$pintuercheck(e, $checktype[0], $checkvalue)) {
						$checkstate = false;
						$checktext = $checktext + "<li>" + $checktype[1] + "</li>"
					}
				}
			}
			if ($checkstate) {
				e.closest(".form-group").removeClass("check-error");
				e.parent().find(".input-help").remove();
				e.closest(".form-group").addClass("check-success")
			} else {
				e.closest(".form-group").removeClass("check-success");
				e.closest(".form-group").addClass("check-error");
				//e.closest(".field").append('<div class="input-help"><ul>' + $checktext + "</ul></div>")
				//修改源码，使用layer组件的tips
				layer.tips($checktext, this,{tipsMore: true});
			}
		}
		if (!$checkplaceholder()) {
			$placeholder(e)
		}
	});
	$pintuercheck = function(element, type, value) {
		$pintu = value.replace(/(^\s*)|(\s*$)/g, "");
		switch (type) {
		case "required":
			return /[^(^\s*)|(\s*$)]/.test($pintu);
			break;
		case "chinese":
			return /^[\u0391-\uFFE5]+$/.test($pintu);
			break;
		case "number":
			return /^([+-]?)\d*\.?\d+$/.test($pintu);
			break;
		case "integer":
			return /^-?[1-9]\d*$/.test($pintu);
			break;
		case "plusinteger":
			return /^[1-9]\d*$/.test($pintu);
			break;
		case "unplusinteger":
			return /^-[1-9]\d*$/.test($pintu);
			break;
		case "znumber":
			return /^[1-9]\d*|0$/.test($pintu);
			break;
		case "fnumber":
			return /^-[1-9]\d*|0$/.test($pintu);
			break;
		case "double":
			return /^[-\+]?\d+(\.\d+)?$/.test($pintu);
			break;
		case "plusdouble":
			return /^[+]?\d+(\.\d+)?$/.test($pintu);
			break;
		case "unplusdouble":
			return /^-[1-9]\d*\.\d*|-0\.\d*[1-9]\d*$/.test($pintu);
			break;
		case "english":
			return /^[A-Za-z]+$/.test($pintu);
			break;
		case "username":
			return /^[a-z]\w{3,}$/i.test($pintu);
			break;
		case "mobile":
			return /^\s*(15\d{9}|13\d{9}|14\d{9}|17\d{9}|18\d{9})\s*$/.test($pintu);
			break;
		case "phone":
			return /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/.test($pintu);
			break;
		case "tel":
			return /^((\(\d{3}\))|(\d{3}\-))?13[0-9]\d{8}?$|15[89]\d{8}?$|170\d{8}?$|147\d{8}?$/.test($pintu) || /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/.test($pintu);
			break;
		case "email":
			return /^[^@]+@[^@]+\.[^@]+$/.test($pintu);
			break;
		case "url":
			return /^https:|http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/.test($pintu);
			break;
		case "ip":
			return /^[\d\.]{7,15}$/.test($pintu);
			break;
		case "qq":
			return /^[1-9]\d{4,10}$/.test($pintu);
			break;
		case "currency":
			return /^\d+(\.\d+)?$/.test($pintu);
			break;
		case "zipcode":
			return /^[1-9]\d{5}$/.test($pintu);
			break;
		case "chinesename":
			return /^[\u0391-\uFFE5]{2,15}$/.test($pintu);
			break;
		case "englishname":
			return /^[A-Za-z]{1,161}$/.test($pintu);
			break;
		case "age":
			return /^[1-99]?\d*$/.test($pintu);
			break;
		case "date":
			return /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$/.test($pintu);
			break;
		case "datetime":
			return /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$/.test($pintu);
			break;
		case "idcard":
			return /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/.test($pintu);
			break;
		case "bigenglish":
			return /^[A-Z]+$/.test($pintu);
			break;
		case "smallenglish":
			return /^[a-z]+$/.test($pintu);
			break;
		case "color":
			return /^#[0-9a-fA-F]{6}$/.test($pintu);
			break;
		case "ascii":
			return /^[\x00-\xFF]+$/.test($pintu);
			break;
		case "md5":
			return /^([a-fA-F0-9]{32})$/.test($pintu);
			break;
		case "zip":
			return /(.*)\.(rar|zip|7zip|tgz)$/.test($pintu);
			break;
		case "img":
			return /(.*)\.(jpg|gif|ico|jpeg|png)$/.test($pintu);
			break;
		case "doc":
			return /(.*)\.(doc|xls|docx|xlsx|pdf)$/.test($pintu);
			break;
		case "mp3":
			return /(.*)\.(mp3)$/.test($pintu);
			break;
		case "video":
			return /(.*)\.(rm|rmvb|wmv|avi|mp4|3gp|mkv)$/.test($pintu);
			break;
		case "flash":
			return /(.*)\.(swf|fla|flv)$/.test($pintu);
			break;
		case "radio":
			var radio = element.closest("form").find('input[name="' + element.attr("name") + '"]:checked').length;
			return eval(radio == 1);
			break;
		default:
			var $test = type.split("#");
			if ($test.length > 1) {
				switch ($test[0]) {
				case "compare":
					return eval(Number($pintu) + $test[1]);
					break;
				case "regexp":
					return new RegExp($test[1], "gi").test($pintu);
					break;
				case "length":
					var $length;
					if (element.attr("type") == "checkbox") {
						$length = element.closest("form").find('input[name="' + element.attr("name") + '"]:checked').length
					} else {
						$length = $pintu.replace(/[\u4e00-\u9fa5]/g, "***").length
					}
					return eval($length + $test[1]);
					break;
				case "ajax":
					var $getdata;
					var $url = $test[1] + $pintu;
					$.ajaxSetup({
						async: false
					});
					$.getJSON($url,
					function(data) {
						$getdata = data.getdata
					});
					if ($getdata == "true") {
						return true
					}
					break;
				case "repeat":
					return $pintu == jQuery('input[name="' + $test[1] + '"]').eq(0).val();
					break;
				default:
					return true;
					break
				}
				break
			} else {
				return true
			}
		}
	};
	$("form").submit(function() {
		$(this).find("input[data-validate],textarea[data-validate],select[data-validate]").trigger("blur");
		$(this).find("input[placeholder],textarea[placeholder]").each(function() {
			$hideplaceholder($(this))
		});
		var numError = $(this).find(".check-error").length;
		if (numError) {
			$(this).find(".check-error").first().find("input[data-validate],textarea[data-validate],select[data-validate]").first().focus().select();
			return false
		}
	});
	$(".form-reset").click(function() {
		$(this).closest("form").find(".input-help").remove();
		$(this).closest("form").find(".form-submit").removeAttr("disabled");
		$(this).closest("form").find(".form-group").removeClass("check-error");
		$(this).closest("form").find(".form-group").removeClass("check-success")
	});
	$(".tab .tab-nav li").each(function() {
		var e = $(this);
		var trigger = e.closest(".tab").attr("data-toggle");
		if (trigger == "hover") {
			e.mouseover(function() {
				$showtabs(e)
			});
			e.click(function() {
				return false
			})
		} else {
			e.click(function() {
				$showtabs(e);
				return false
			})
		}
	});
	$(".slidemenu .icon-slidemenu").click(function() {
		$(".slidemenu .slidemenu-left,.slidemenu .slidemenu-right").toggle("slow")
	});
	$.fn.ajaxSubmit = function(fn) {
		$(this).find("input[data-validate],textarea[data-validate],select[data-validate]").trigger("blur");
		$(this).find("input[placeholder],textarea[placeholder]").each(function() {
			$hideplaceholder($(this))
		});
		var numError = $(this).find(".check-error").length;
		if (numError) {
			$(this).find(".check-error").first().find("input[data-validate],textarea[data-validate],select[data-validate]").first().focus().select();
			return false
		}
		if (fn && typeof fn == "function") {
			fn()
		}
	};
	$showtabs = function(e) {
		var detail = e.children("a").attr("href");
		e.closest(".tab .tab-nav").find("li").removeClass("active");
		e.closest(".tab").find(".tab-body .tab-panel").removeClass("active");
		e.addClass("active");
		$(detail).addClass("active")
	};
	$(".dialogs").each(function() {
		var e = $(this);
		var trigger = e.attr("data-toggle");
		if (trigger == "hover") {
			e.mouseover(function() {
				$showdialogs(e)
			})
		} else {
			if (trigger == "click") {
				e.click(function() {
					$showdialogs(e)
				})
			}
		}
	});
	$showdialogs = function(e) {
		var trigger = e.attr("data-toggle");
		var getid = e.attr("data-target");
		var data = e.attr("data-url");
		var mask = e.attr("data-mask");
		var width = e.attr("data-width");
		var detail = "";
		var masklayout = $('<div class="dialog-mask"></div>');
		var temp = "";
		if (width == null) {
			width = "80%"
		}
		if (mask == "1") {
			$("body").append(masklayout)
		}
		detail = '<div class="dialog-win" style="position:fixed;width:' + width + ';z-index:11;">';
		if (getid != null) {
			detail = detail + $(getid).html();
			temp = $(getid).detach()
		}
		if (data != null) {
			detail = detail + $.ajax({
				url: data,
				async: false
			}).responseText
		}
		detail = detail + "</div>";
		var win = $(detail);
		win.find(".dialog").addClass("open");
		$("body").append(win);
		var x = parseInt($(window).width() - win.outerWidth()) / 2;
		var y = parseInt($(window).height() - win.outerHeight()) / 2;
		if (y <= 10) {
			y = 10
		}
		win.css({
			"left": x,
			"top": y
		});
		win.find(".dialog-close,.close").each(function() {
			$(this).click(function() {
				win.remove();
				$(".dialog-mask").remove();
				$("body").prepend(temp)
			})
		});
		masklayout.click(function() {
			win.remove();
			$(this).remove();
			$("body").prepend(temp)
		})
	};
	$(".tips").each(function() {
		var e = $(this);
		var title = e.attr("title");
		var trigger = e.attr("data-toggle");
		e.attr("title", "");
		if (trigger == "" || trigger == null) {
			trigger = "hover"
		}
		if (trigger == "hover") {
			e.mouseover(function() {
				$showtips(e, title)
			})
		} else {
			if (trigger == "click") {
				e.click(function() {
					$showtips(e, title)
				})
			} else {
				if (trigger == "show") {
					e.ready(function() {
						$showtips(e, title)
					})
				}
			}
		}
	});
	$showtips = function(e, title) {
		var trigger = e.attr("data-toggle");
		var place = e.attr("data-place");
		var width = e.attr("data-width");
		var css = e.attr("data-style");
		var image = e.attr("data-image");
		var content = e.attr("content");
		var getid = e.attr("data-target");
		var data = e.attr("data-url");
		var x = 0;
		var y = 0;
		var html = "";
		var detail = "";
		if (image != null) {
			detail = detail + '<img class="image" src="' + image + '" />'
		}
		if (content != null) {
			detail = detail + '<p class="tip-body">' + content + "</p>"
		}
		if (getid != null) {
			detail = detail + $(getid).html()
		}
		if (data != null) {
			detail = detail + $.ajax({
				url: data,
				async: false
			}).responseText
		}
		if (title != null && title != "") {
			if (detail != null && detail != "") {
				detail = '<p class="tip-title"><strong>' + title + "</strong></p>" + detail
			} else {
				detail = '<p class="tip-line">' + title + "</p>"
			}
			e.attr("title", "")
		}
		detail = '<div class="tip">' + detail + "</div>";
		html = $(detail);
		$("body").append(html);
		if (width != null) {
			html.css("width", width)
		}
		if (place == "" || place == null) {
			place = "top"
		}
		if (place == "left") {
			x = e.offset().left - html.outerWidth() - 5;
			y = e.offset().top - html.outerHeight() / 2 + e.outerHeight() / 2
		} else {
			if (place == "top") {
				x = e.offset().left - html.outerWidth() / 2 + e.outerWidth() / 2;
				y = e.offset().top - html.outerHeight() - 5
			} else {
				if (place == "right") {
					x = e.offset().left + e.outerWidth() + 5;
					y = e.offset().top - html.outerHeight() / 2 + e.outerHeight() / 2
				} else {
					if (place == "bottom") {
						x = e.offset().left - html.outerWidth() / 2 + e.outerWidth() / 2;
						y = e.offset().top + e.outerHeight() + 5
					}
				}
			}
		}
		if (css != "") {
			html.addClass(css)
		}
		html.css({
			"left": x + "px",
			"top": y + "px",
			"position": "absolute"
		});
		if (trigger == "hover" || trigger == "click" || trigger == null) {
			e.mouseout(function() {
				html.remove();
				e.attr("title", title)
			})
		}
	};
	$(".alert .close").each(function() {
		$(this).click(function() {
			$(this).closest(".alert").remove()
		})
	});
	$(".radio label").each(function() {
		var e = $(this);
		e.click(function() {
			e.closest(".radio").find("label").removeClass("active");
			e.addClass("active")
		})
	});
	$(".checkbox label").each(function() {
		var e = $(this);
		e.click(function() {
			if (e.find("input").is(":checked")) {
				e.addClass("active")
			} else {
				e.removeClass("active")
			}
		})
	});
	$(".collapse .panel-head").each(function() {
		var e = $(this);
		e.click(function() {
			e.closest(".collapse").find(".panel").removeClass("active");
			e.closest(".panel").addClass("active")
		})
	});
	$(".collapse-toggle .panel-head").each(function() {
		var e = $(this);
		e.click(function() {
			e.closest(".panel").toggleClass("active")
		})
	});
	$(".icon-navicon").each(function() {
		var e = $(this);
		var target = e.attr("data-target");
		e.click(function() {
			$(target).toggleClass("nav-navicon")
		})
	});
	$(".banner").each(function() {
		var e = $(this);
		var pointer = e.attr("data-pointer");
		var interval = e.attr("data-interval");
		var style = e.attr("data-style");
		var items = e.attr("data-item");
		var items_s = e.attr("data-small");
		var items_m = e.attr("data-middle");
		var items_b = e.attr("data-big");
		var num = e.find(".carousel .item").length;
		var win = $(window).width();
		var i = 1;
		if (interval == null) {
			interval = 5
		}
		if (items == null || items < 1) {
			items = 1
		}
		if (items_s != null && win > 760) {
			items = items_s
		}
		if (items_m != null && win > 1000) {
			items = items_m
		}
		if (items_b != null && win > 1200) {
			items = items_b
		}
		var itemWidth = Math.ceil(e.outerWidth() / items);
		var page = Math.ceil(num / items);
		e.find(".carousel .item").css("width", itemWidth + "px");
		e.find(".carousel").css("width", itemWidth * num + "px");
		var carousel = function() {
			i++;
			if (i > page) {
				i = 1
			}
			$showbanner(e, i, items, num)
		};
		var play = setInterval(carousel, interval * 600);
		e.mouseover(function() {
			clearInterval(play)
		});
		e.mouseout(function() {
			play = setInterval(carousel, interval * 600)
		});
		if (pointer != 0 && page > 1) {
			var point = '<ul class="pointer"><li value="1" class="active"></li>';
			for (var j = 1; j < page; j++) {
				point = point + ' <li value="' + (j + 1) + '"></li>'
			}
			point = point + "</ul>";
			var pager = $(point);
			if (style != null) {
				pager.addClass(style)
			}
			e.append(pager);
			pager.css("left", e.outerWidth() * 0.5 - pager.outerWidth() * 0.5 + "px");
			pager.find("li").click(function() {
				$showbanner(e, $(this).val(), items, num)
			});
			var lefter = $('<div class="pager-prev icon-angle-left"></div>');
			var righter = $('<div class="pager-next icon-angle-right"></div>');
			if (style != null) {
				lefter.addClass(style);
				righter.addClass(style)
			}
			e.append(lefter);
			e.append(righter);
			lefter.click(function() {
				i--;
				if (i < 1) {
					i = page
				}
				$showbanner(e, i, items, num)
			});
			righter.click(function() {
				i++;
				if (i > page) {
					i = 1
				}
				$showbanner(e, i, items, num)
			})
		}
	});
	$showbanner = function(e, i, items, num) {
		var after = 0,
		leftx = 0;
		leftx = -Math.ceil(e.outerWidth() / items) * (items) * (i - 1);
		if (i * items > num) {
			after = i * items - num;
			leftx = -Math.ceil(e.outerWidth() / items) * (num - items)
		}
		e.find(".carousel").stop(true, true).animate({
			"left": leftx + "px"
		},
		800);
		e.find(".pointer li").removeClass("active");
		e.find(".pointer li").eq(i - 1).addClass("active")
	};
	$(".spy a").each(function() {
		var e = $(this);
		var t = e.closest(".spy");
		var target = t.attr("data-target");
		var top = t.attr("data-offset-spy");
		var thistarget = "";
		var thistop = "";
		if (top == null) {
			top = 0
		}
		if (target == null) {
			thistarget = $(window)
		} else {
			thistarget = $(target)
		}
		thistarget.bind("scroll",
		function() {
			if (target == null) {
				thistop = $(e.attr("href")).offset().top - $(window).scrollTop() - parseInt(top)
			} else {
				thistop = $(e.attr("href")).offset().top - thistarget.offset().top - parseInt(top)
			}
			if (thistop < 0) {
				t.find("li").removeClass("active");
				e.parents("li").addClass("active")
			}
		})
	});
	$(".fixed").each(function() {
		var e = $(this);
		var style = e.attr("data-style");
		var top = e.attr("data-offset-fixed");
		if (top == null) {
			top = e.offset().top
		} else {
			top = e.offset().top - parseInt(top)
		}
		if (style == null) {
			style = "fixed-top"
		}
		$(window).bind("scroll",
		function() {
			var thistop = top - $(window).scrollTop();
			if (style == "fixed-top" && thistop < 0) {
				e.addClass("fixed-top")
			} else {
				e.removeClass("fixed-top")
			}
			var thisbottom = top - $(window).scrollTop() - $(window).height();
			if (style == "fixed-bottom" && thisbottom > 0) {
				e.addClass("fixed-bottom")
			} else {
				e.removeClass("fixed-bottom")
			}
		})
	});
	$(".wx-share-btn").click(function() {
		$(".wx-share").show()
	});
	$(".wx-share").click(function() {
		$(this).hide()
	});
	$(".wx-comments-input").keydown(function() {
		var txt_num = (120 - parseInt($(this).val().length));
		$(".wx-comments-num").html(txt_num)
	})
});